home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 August (Alt) / CHIP 2005-08.1.iso / program / guvenlik / syslinux-3.07.exe / dos / __divdi3.c next >
Encoding:
C/C++ Source or Header  |  2004-12-18  |  420 b   |  30 lines

  1. /*
  2.  * arch/i386/libgcc/__divdi3.c
  3.  */
  4.  
  5. #include <stdint.h>
  6. #include <stddef.h>
  7.  
  8. extern uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem);
  9.  
  10. int64_t __divdi3(int64_t num, int64_t den)
  11. {
  12.   int minus = 0;
  13.   int64_t v;
  14.  
  15.   if ( num < 0 ) {
  16.     num = -num;
  17.     minus = 1;
  18.   }
  19.   if ( den < 0 ) {
  20.     den = -den;
  21.     minus ^= 1;
  22.   }
  23.   
  24.   v = __udivmoddi4(num, den, NULL);
  25.   if ( minus )
  26.     v = -v;
  27.  
  28.   return v;
  29. }
  30.